<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/vue.js"></script>
</head>
<body>
    <div id="app">
        <com-a></com-a>
        <hr>
        <com-b></com-b>
        <hr>
        <com-c></com-c>
    </div>
</body>
<script>
    // 局部组件  => 
    // 1. 使用时才会被注册(如果组件不被使用 不会打包到项目的源码中 
    // 2. 组件之间的层级关系也比较清晰 
   
    // comA 对象(Vue的选项配置)

    var comB = {
        data:function(){
            return {}
        },
        template:`<div>
            <p>我是组件B</p>  
        </div>`
    }

    var comA = {
        data:function(){
            return {}
        },
        template:`<div>
            <p>我是组件A</p>   
            <com-b></com-b> 
        </div>`,
        components:{
            comB:comB,
        }
    }

   

    var comC = {
        data:function(){
            return {}
        },
        template:`<div>
            <com-a></com-a>
            <p>我是组件C</p>    
            <com-b></com-b>
        </div>`,
        components:{
            comA,
            comB,
        }
    }

    var vm = new Vue({
        el:"#app",
        data:{
            count:1,
        },
        components:{
            // 键名: 组件的名称
            // 键值: 组件的配置
            comA:comA,
            comB,
            comC,
        }
    });


    // function add(){
    //     var a = 1;
    //     var b = 2;
    //     return a + b;
    // }
    // add();

    function add(a=0,b=0){
        // var a = 1;
        // var b = 2;
        return a + b;
    }

    
    // add(10,20);  // 实际参数(可以理解为 父作用域调用函数时传入的)

    var x = 10;
    var y = 20;
    add(x,y);

</script>
</html>